package meihua.stopcarapp.presenter.contract;

import meihua.mylibrary.base.BaseModel;
import meihua.mylibrary.base.BasePresenter;
import meihua.stopcarapp.bean.UserEntity;
import meihua.stopcarapp.ui.BaseView;
import rx.Observable;

/**
 * Created by DZB on 2017/5/10.
 */
public class UserInfoContract {

    public interface Model extends BaseModel {

        /**
         * 修改用户昵称
         *
         * @param user_phone    是 手机号
         * @param user_id       是  用户id
         * @param user_nickname 否  用户之前昵称
         */
        Observable<String> getUserNickName(String user_phone, String user_id, String user_nickname);

        /**
         * 修改用户性别
         *
         * @param user_phone 是 手机号
         */
        Observable<UserEntity> getUserSex(String user_phone, String user_sex);


        /**
         * //修改用户手机号
         *
         * @param user_phone 是 	手机号
         * @param user_id    是 用户ID
         */
        Observable<String> getUserPhone(String user_phone, String user_id);


        /**
         * 修改用户身份证号
         *
         * @param user_id     是 	string 	用户id
         * @param user_phone  是 	string 	用户手机号
         * @param user_idcard 是 	string 	用户身份证号码
         * @param user_name   是 	string 	用户真是姓名
         * @return
         */
        Observable<String> getUserCard(String user_id, String user_phone, String user_idcard, String user_name);

        /**
         * 修改用户车牌号
         *
         * @param user_phone 是 	string 	手机号
         * @param user_id    是 	string 	用户id
         * @param user_carid 否 	string 	车牌号
         */
        Observable<String> getUserPlateNumber(String user_phone, String user_id, String user_carid);

        /**
         * 修改用户易停称号
         */
        // Observable<UserEntity> getUserPlateNumber(String user_phone, String user_id, String user_carid);

        /**
         * 退出登录请求
         *
         * @param user_phone 是 	string 	手机号
         * @param user_state 是 	string 	用户登录状态
         */
        Observable<String> getUserQuit(String user_phone, String user_state);
    }

    public interface View extends BaseView {
        /**
         * @param msg 返回昵称
         */
        void returnUserNickName(String msg);

        /**
         * @param userEntity 返回修改性别通知
         */
        void returnUserSex(UserEntity userEntity);

        /**
         * @param data 返回用户手机号
         */
        void returnUserPhone(String data);

        /**
         * 返回身份证修改信息
         */
        void returnUserCard(String msg);

        /**
         * @param user_carid 返回车牌号
         */
        void returnUserPlateNumber(String user_carid);

        /**
         * @param msg 返回退出信息
         */
        void returnUserQuit(String msg);

    }

    public abstract static class Presenter extends BasePresenter<View, Model> {
        //发起修改用户昵称请求
        public abstract void getUserNickNameRequest(String user_phone, String user_id, String user_nickname);

        //发起修改用户性别请求
        public abstract void getUserSexRequest(String user_phone,String user_sex);

        //发起修改用户手机号请求
        public abstract void getUserPhoneRequest(String user_phone, String user_id);

        //发起修改用户身份证号请求
        public abstract void getUserCardRequest(String user_id, String user_phone, String user_idcard, String user_name);

        //发起修改用户车牌号请求
        public abstract void getUserPlateNumberRequest(String user_phone, String user_id, String user_carid);

        //发起修改用户易停称号请求
        public abstract void getUserYtTitleRequest(String user_phone);

        //发起修改用户退出登录请求
        public abstract void getUserQuitRequest(String user_phone, String user_state);
    }
}

